

// export const selectFiles = (options:any={accept:'*',multiple:false}) => {
//     return new Promise((r) => {
//         const input = document.createElement('input');
//         input.type = 'file';
//         input.style = 'width:0;height:0;opacity:0;position:absolute;'
//         for(const [k,v] of Object.entries(options)){
//             input[k] = v
//         }
//         input.addEventListener('change',(e:any) => {
//             const files = e.target.files;
//             r(files)
//         })
//         document.body.appendChild(input);
//         input.click();
//     })
// }

// export const readFiles = (files:any[]) => {
//     return new Promise((r) => {
//         const len = files.length;
//         const res = [];
//         const reader = new FileReader();
//         reader.onload = (e) => {

//         }
//         for(const file of files){
//             console.log(file);
//         }
//     })
// }


export namespace File {
    
    // 选择文件
    export const select = (options:any={accept:'*',multiple:false}) => {
        return new Promise((r) => {
            const input = document.createElement('input');
            input.type = 'file';
            input.style = 'width:0;height:0;opacity:0;position:absolute;'
            for(const [k,v] of Object.entries(options)){
                input[k] = v
            }
            input.addEventListener('change',(e:any) => {
                const files = e.target.files;
                r(files)
            })
            document.body.appendChild(input);
            input.click();
        })
    }
    
    // 读取文件
    export const read = (file:any,charset='utf-8') => {
        return new Promise((reslove,reject) => {
            const reader = new FileReader();
            reader.onload = (e:any) => {
                reslove(e.target.result)
            }
            reader.onerror = (e) => {
                reject(e)
            }
            if(file.type.startsWith('text/') || file.type === ''){
                reader.readAsText(file,charset)
            }else{
                reader.readAsDataURL(file)
            }
        })
    }

    // 批量读取文件
    export const reads = async (files:any[] = []) => {
        const res:any[] = [];
        for(const f of files){
            const d  = await read(f)
            res.push({name:f.name,result:d,tyhpe:f.type,size:Math.round(100 * f.size / 1024) / 100 + 'K'})
        }

        return res;
    }
}

